﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace _3DWorldOfSmith
{
    // Abstract class that have all the necessary variables and methods
    // to all Game Objects
    public abstract class GameObject
    {
        public Vector3 position;        // Game object's world position
        public Vector3 rotation;        // Game object's rotation
        public Vector3 size;            // Game object's size

        public Matrix world, projection, view;

        public Texture2D texture;

        public abstract void Start();   // Initials game object's values
        public abstract void Update();  // Updates game object's values
        public abstract void Draw();    // Draws the game object

        public abstract void SetUpVertices();   // Sets all game object's vertices.
    }
}
